import java.util.Arrays;

class Solution1 {
    public int findSubstringInWraproundString(String s) {
        int n = s.length();
        // 以 i 位置为结尾的子串有多少在 base 中
        int[] dp = new int[n];
        // 全部初始化为 1
        Arrays.fill(dp, 1);
        for (int i = 1; i < n; i++) {
            if (s.charAt(i - 1) + 1 == s.charAt(i) || (s.charAt(i - 1) == 'z' && s.charAt(i) == 'a')) {
                dp[i] += dp[i - 1];
            }
        }
        // 去重数组
        int[] tmp = new int[26];
        for (int i = 0; i < n; i++) {
            tmp[s.charAt(i) - 'a'] = Math.max(tmp[s.charAt(i) - 'a'], dp[i]);
        }
        int sum = 0;
        for (int x : tmp) {
            sum += x;
        }
        return sum;
    }
}